-- format options
vim.api.nvim_create_autocmd("FileType", {
    group = vim.api.nvim_create_augroup("format_augroup", { clear = true }),
    callback = function()
        vim.opt.formatoptions:remove({ "c", "r", "o" })
    end,
})

-- highlight yank
vim.api.nvim_create_autocmd("TextYankPost", {
    group = vim.api.nvim_create_augroup("yank_augroup", { clear = true }),
    callback = function()
        vim.highlight.on_yank()
    end,
})

-- columns
vim.api.nvim_create_autocmd("FileType", {
    pattern = { "checkhealth", "*git*", "help", "man", "netrw", "qf" },
    group = vim.api.nvim_create_augroup("column_augroup", { clear = true }),
    callback = function()
        vim.opt_local.colorcolumn = ""
        vim.opt_local.signcolumn = "no"
    end,
})

-- terminal
vim.api.nvim_create_autocmd("TermOpen", {
    group = vim.api.nvim_create_augroup("terminal_augroup", { clear = true }),
    callback = function()
        vim.opt_local.number = false
        vim.opt_local.relativenumber = false
        vim.opt_local.signcolumn = "no"
        vim.opt_local.scrolloff = 0
        vim.cmd.startinsert()
    end,
})

-- chezmoi
vim.api.nvim_create_autocmd("BufWritePost", {
    group = vim.api.nvim_create_augroup("chezmoi_augroup", { clear = true }),
    pattern = vim.fn.expand("~") .. "/.local/share/chezmoi/dot_config/*",
    callback = function()
        vim.fn.system({ "chezmoi", "apply", "--source-path", vim.fn.expand("%") })
    end,
})
